{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 岭回归 Ridge Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "np.random.seed(42)\n",
    "x = np.random.uniform(-3.0, 3.0, size=100)\n",
    "X = x.reshape(-1, 1)\n",
    "y = 0.5 * x + 3 + np.random.normal(0, 1, size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11115da58>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "def PolynomialRegression(degree):\n",
    "    return Pipeline([\n",
    "        (\"poly\", PolynomialFeatures(degree=degree)),\n",
    "        (\"std_scaler\", StandardScaler()),\n",
    "        (\"lin_reg\", LinearRegression())\n",
    "    ])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "np.random.seed(666)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "167.94010867293571"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "\n",
    "poly_reg = PolynomialRegression(degree=20)\n",
    "poly_reg.fit(X_train, y_train)\n",
    "\n",
    "y_poly_predict = poly_reg.predict(X_test)\n",
    "mean_squared_error(y_test, y_poly_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11147c400>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_plot = np.linspace(-3, 3, 100).reshape(100, 1)\n",
    "y_plot = poly_reg.predict(X_plot)\n",
    "\n",
    "plt.scatter(x, y)\n",
    "plt.plot(X_plot[:,0], y_plot, color='r')\n",
    "plt.axis([-3, 3, 0, 6])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1115ff2b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_model(model):\n",
    "    X_plot = np.linspace(-3, 3, 100).reshape(100, 1)\n",
    "    y_plot = model.predict(X_plot)\n",
    "\n",
    "    plt.scatter(x, y)\n",
    "    plt.plot(X_plot[:,0], y_plot, color='r')\n",
    "    plt.axis([-3, 3, 0, 6])\n",
    "    plt.show()\n",
    "\n",
    "plot_model(poly_reg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用岭回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import Ridge\n",
    "\n",
    "def RidgeRegression(degree, alpha):\n",
    "    return Pipeline([\n",
    "        (\"poly\", PolynomialFeatures(degree=degree)),\n",
    "        (\"std_scaler\", StandardScaler()),\n",
    "        (\"ridge_reg\", Ridge(alpha=alpha))\n",
    "    ])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.3233492754051845"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ridge1_reg = RidgeRegression(20, 0.0001)\n",
    "ridge1_reg.fit(X_train, y_train)\n",
    "\n",
    "y1_predict = ridge1_reg.predict(X_test)\n",
    "mean_squared_error(y_test, y1_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10bbd4198>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(ridge1_reg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.1888759304218448"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ridge2_reg = RidgeRegression(20, 1)\n",
    "ridge2_reg.fit(X_train, y_train)\n",
    "\n",
    "y2_predict = ridge2_reg.predict(X_test)\n",
    "mean_squared_error(y_test, y2_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAD8CAYAAABXe05zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xuc1VW5x/HPM8MAAwgDOimMkpi3PKKoo1ZY3vJ+I7Ls\nomZWnCxTz1ELtSxNBQ9a5tFKjve8p4LmjTQwlVIuiqYioqIhijDCgMAAc1nnjzUDzLBn33/7d9nf\n9+s1L2BmX9Zm9n5+6/esZz0/c84hIiLxURH2AEREJDcK3CIiMaPALSISMwrcIiIxo8AtIhIzCtwi\nIjGTVeA2sxozu9/M3jCzuWb2+aAHJiIiqfXI8na/A55wzp1oZj2BPgGOSURE0rBMG3DMbAAwB9jB\nabeOiEjosplxDwOWAreY2Z7AbOBs59zqTW9kZmOAMQB9+/bdZ9dddy32WEVEutW4pplFjU20bTK/\nrDCjrqaamj5VIY4sC2+/zezGxgbnXG02N89mxl0PPA+MdM69YGa/A1Y6537R3X3q6+vdrFmzchm2\niEhBRo6fyqLGps2+X1dTzfSxh4Qwohx86UvYs8/Ods7VZ3PzbBYn3wfed8690P7v+4G98x2fiEgQ\nPkgRtNN9P1IaGnK6ecbA7ZxbDCw0s13av3Uo8HruIxMRCc6Qmuqcvh8pxQ7c7X4C3GlmrwAjgCty\nHJaISKDOP2IXqqsqO32vuqqS84/YpZt7RERbG3z8cU53yaoc0Dk3B8gq9yIiEoZRe9UBMGHKPD5o\nbGJITTXnH7HLhu9H1vLlPnjnINs6bhGRyBu1V130A3VXOaZJQFveRUTCpcAtIhIzCtwiIjGzdGnO\nd1HgFhEJk2bcIiIx09AAfXLr26fALSISpoYG2GqrnO6iwC0iEqalS3MO3KrjFilzk19aFL9NK0mS\nx4xbgVukjE1+aREXPPgvmppbAVjU2MQFD/4LQMG7VBoaYMcdc7qLUiUiZWzClHkbgnaHpuZWJkyZ\nF9KIylBDA9Rm1YZ7AwVukTIW61aoSbB+PaxcqcVJEclerFuhJkFHDbcCt4hkK7atUJMiz8CtxUmR\nMhbbVqhJ0RG4c8xxK3CLlLlYtkJNCqVKRERipqPBlAK3iEhMdMy4Bw3K6W4K3CIiYWlogJoaqKrK\n6W7KcYuIlNCmLQYmPvMan+8/kH45PoYCt0gI1B+kPHVtMdB7xXLmt/XmvZcW5fQ4CtwiJab+IOWr\na4uBLZtWsKh/bc4tBpTjFikx9QcpX11bCQxcs5Ll1f1zbjGgGbdIiak/SHjCTlENqalmUcfv2TkG\nNa1kWXV/htRU824Oj6MZt0iJqT9IODpSVIsam3BsTFFNzjG/XIhNWwz0aV5Lr9ZmPtliYM4tBhS4\nRUpM/UHCEYUU1ai96hg3ejh1NdUMaloJwKEH7JbzrF+pEpESU3+QcEQlRbWhxcDMmfBH2HufnXJ+\njKwCt5m9C3wCtAItzrn6nJ9JRDZQf5DS65Rf7vL9UOTZpwRyS5Uc7JwboaAtInGUKUU1+aVFjBw/\nlWFjH2Xk+KnB574LCNxKlYhIWUiXogqltj7Plq6QfeB2wFNm1grc4JybmPMziYiErLsUVbqFy8AC\n99KlUFkJAwbkfNdsA/cBzrlFZvYp4Ekze8M598ymNzCzMcAYgKFDh+Y8EBGRsISycNnQ4NMkZjnf\nNasct3NuUfufS4BJwH4pbjPROVfvnKuvzWPqLyISllBq6zsCdx4yBm4z62tmW3T8HTgceDWvZxOR\n2Cj5Yl2IQqmt/+ijvPLbkF2qZGtgkvnpfA/gLufcE3k9m4jEQrk1wgqltv6tt+C44/K6a8bA7Zx7\nB9gzr0cXkVgKZbEuhVL2FilpbX1jIyxZArvkN6NXOaCIbCYKuwwTPet/803/584753V39SoRkc1E\noRFWFHqLFCLtGsG89teQ54xbgVtENhOFRlhRmPXnK2Mnwjff9DXcO+yQ1+MrcIvIZjbtYmdAXU01\n40YPL3nv6ly+HyUZzxbmzYNhw6Bnz7weXzluEUkp7EZY5x+xS6ccN8Sn/W3Gs4U338w7vw2acYtI\nREVh1p+vtGcLbW0+cOeZ3wbNuEUkwsKe9ecr7dnCokXQ1KQZt4hIlKQ9WyiwogQ04xYRCUS3ZwsF\n1nCDZtwiIqU1bx707QtDhuT9EArcIiKl1FFRkkc71w4K3CIipTRvXkH5bVCOWyStUjY5kjKwbh28\n+y6cckpBD6PALdKNRDc5krwVdDB/6y1wruAZt1IlIt2Ie5MjKb6MPUgyKUJFCWjGLdKtODc5knat\nrTB/PsyZA6tW+QXBigrYckv4whdyvnRYwX3KO2q4FbhFgjGkpppFKYJ0HJoclbXFi+Guu2DyZHjx\nRVi9uvvb7rYbHHgg/PCHsMcenX6UKiVS8MH8zTdhm22gf/9sX01KSpWIdCMKrU0lS21tMGkSHHUU\n1NXBuef6gH366XDLLfDyy7BwIbz3nl8cfO45GDcOPv1puP122HNPGD3az8zpPiUyoLoq5dNnfTAv\nQkUJgDnnCn6Qrurr692sWbOK/rgipaaqkohra/Mz60sugVdege228xUbp5wCu+6a3WMsXw6/+x1c\ncw2sWAGnnsphO3yN+U2b11kP7FPF2ua2TukSAxx+W3vG90dtLXzlKzBx4mY/MrPZzrn6bIacqMAd\nxodMH2yR4snp8/T3v8PZZ/vZ9M47wy9+Ad/4BvTIMwPc2Aj/8z9w5ZW8UzOYH5/wM+Z+qvOFDgz4\n7UkjmDBlHosamzYE7Q7VVZXddzBctszn1q+6yp8RdJFL4E5MqqTg1d6YPKdIUmX9eVq82M+oDzrI\nB9s//Qleew1OPjn/oA1QUwNXXAFTp7JFy1om334u35rzeKebDKmpZtRedUwfewh1NdV0nfamrTp6\n8kn/Z31WsTmtxATuMEq3VC4mUjwZP0/OwQ03+BzxfffBz38Or79eeMDu6sADmTlpKjM+vQdXTLme\n/37mT+DcZusbOS9U3nsvDB4MBxxQ8BATU1USRumWysVEiift52nhQvj+9+Gvf4VDD4Xf/77gkrp0\njj5kDybf+yAP/+gMzvrnvWxd0UKva6/plALJqepo5Up47DH4z//015osUGJm3GFcny7O18QTiZqU\nnxvn+O47z8Hw4TB9ug/YTz4ZaNDuMKp+KMe/8Aiccw4nTX+AUX+4xNeFt8up6ujhh/1295NOKsrY\nEhO4wyjdUrmYSPF0/Tz1W7eG/330ai7+83gfuF9+Gc44o6Cuejkzg9/8xi983ngjfO97vpKFHC+t\nds89vuLlc58ryrASkyrp+M8qZYVHGM8pkhSpKkjGjR7OhCnz2Gruy/z+kQkMXrEEfv1ruOCCoqQY\n8mIGl17qn/9Xv4I+feD668Esu0urLV/uUzxnneV3bRZBYgI3hHN9urheE08kTN018Br3ld2Z3vsV\nuOun/kIDD/8dRo4MebTtLr4Y1qzxJYN9+sCECWCWuYRx0iRobi5amgQSFrglN6pBl3SCfH+kqiDp\nsWolA77zLXj1WTjhBL/jceDAojxfUZjB+PE+eF99NfTuzeTRP+SCSa+m7yB5772www5FKQPskPW8\n3cwqzewlM3ukaM8uoVENuqQT9PujawXJbh+9w8O3ncMXX5vuN6hMmhStoN3BzO+y/N734PLLaf3x\nmaxd39zpJp1KGJcuhb/9Db7+9aLm5nNJuJwNzC3aM0uoVIMu6QT9/ti0guTEfz3Fg3ecR+/m9Zw5\n5rd+V2EpFyBzVVHht6yfey5fff4hrn14AlWtnYP3B41Nvu782mt9JUoR0ySQZeA2s22BY4Abi/rs\nEhrVoEs6Qb8/zj9iF/pbK1c8cR1XPXYNs+t25cQfXMeR//nVojx+4Coq4KqruP6oMRz3xrPc/OdL\n2LHh3xt+/Jlq/Magyy7zvUn23LOoT59tjvsa4KfAFt3dwMzGAGMAhg4dWvjIJFBqWSrpBP3+GLVl\nKwf+5WIGvvYyv//cidxz7BjOP3q32K2x1F1+MRdW9uWXj/8vT930I2bVfZbHdz+Is998Ct572wfu\nCy4o+hlExhm3mR0LLHHOzU53O+fcROdcvXOuvra2tmgDlGCoBl3SCfT98dRTsPfeDFy4ACZNYsjv\nr6G1spL/uncOI8dPjdU6y6i96tjv0nMZPfZeLj/4dGrXr+IXU/5A/9UrfAngRRcVrQRwUxm7A5rZ\nOOAUoAXoDfQHHnTOndzdfdTWNR5UVVLeMv3+i/7+cA6uvNIHs89+Fh58kMmr+3YqC4QMHfaizjm/\nUWi77XwnwBwE1tbVzA4CznPOHZvudgrc0aRAHW2l/P10raOGgAPmihXwne/AQw/5hbobb4R+/Rg5\nfmrKlExdTTXTxx5S/HFEWFm2dZX0VP4XbaX+/ZS0quiVV3wN86OPwm9/C3ffDf36AVokz1dOgds5\n93Sm2bZEk8r/oq3Uv59sA+bklxYxcvxUho19NL/88x13+P4cq1fDtGlwzjmdFurUqC0/mnGXCc1s\noq3Uv59sAmZBZwFr1/oL8J5yCuy7r79ob4o+1Fokz48Cd5nQzKYwBc88Myj17yebgJn3WcCCBT5I\n33AD/OxnfufgNtukvGlOHfZkA/UqKRPnH7FLysUozWwy664hElC0AFPq3082nS3zOgt46CE47TRf\nXfHQQ3D88VmNpdSBOu4L9QrcZUItaPOXbuZZrP+/sNoSp3v8nDbhrF/vZ9fXXAP77OMvLbbDDpvf\nLgJKcSAOmgJ3GVEL2vwElX9ONeuLUglc1mcBCxb4Er+ZM+EnP/HtTnv1KvFos1eKA3HQFLhFMghi\n+3ccZn1ZnQXcey+MGeMrRR54AEaPDmm02UvCQr0Ct0gGQeSf4zLr6/YsbfVqf0WXm2/25X533w3b\nb1/y8aWSKX+dhD49qioRySCIyodYz/pmz/Z57Ftu8dvXn3kmUkE7UwljEkoQNeMWyUKx1wdiOetr\nbfWX7br4Yth6a98s6pBDIlWhkc2ZTBIW6hW4RUIQu/LMBQvg1FPhuef81Vz+8AcYNChyufpsz2Ti\nvlCvVIlICGKz8cQ5f7WX4cN917vbb4d77oFBg4DSbNXPZfNTuWw004xbJCSRn/UtWuSvrThlChx6\nqF+I7HKRlGxmuIWkUnKd0cfuTCZPmnGLSGfO+baru+0Gzz4L11/vLwqQ4spWmWa4hXY9zHVGH6Uz\nmSDbJGjGLSIbLVgAP/iB7y9y0EE+gH/mM93ePNMMt9Cyx3yqb6JwJhN07l8zbpEEy3rW19ICV18N\nu+8OM2bAH//og3eaoA2ZZ7iFlj3GNWcddO5fM26JvSiVo0VJ1rO+WbP87seXXoJjj/WpkRwu+J1u\nhlto2WNcc9ZB1+lrxi2xpiv7dC/jrK+x0e9+3H9/WLwY7r8fHn44p6CdSaGbXaKUs85F0GcKmnFL\nrMVl63gYup31LV/jy/rOPx8aGuCMM+Dyy2HAgKKPoRibXaKQs85V0GcKCtxlLAkphlhvHQ9YqjTF\n7ovf4vKnb4T3XvU9Rh5/HPbeu+jPnYT3ViGC3p0ZTOBu0ocm6qK24y1fsdw6XiKbzvq2Wr2c8575\nE19/5UmaBw7y1SLf/S5UFD9bmpT3VqGCPFMIJse9Zk0gDyvFk5SLByehYVBQRu1Vx5VH78jP5kxm\n2sQxfPW1qbx9yhh6LXjbb6wJIGhDct5bURbMjHvdukAeVoonKSmGJDQMCkRbG9x5J8dfdBEsXAjH\nHQdXXcVOO+8c+FMn5b0VZZEN3OWeIwtaklIMcVy8Coxz8MQTcOGFMGeOb796++1+M02JDKiuorGp\nebPvx/G9FVXBBO716wu6u3JkwYtafWzXA/XBu9Yy7Y2liThwl2wS8o9/wAUX+P7YO+wAd9wB3/xm\n2pRIscc2+aVFrF7fstn3qypM6asiiuSMWyVewYtSiiHVgfqO5/+94edxPnCXZBIyYwb88pd+pr31\n1n4Dzfe/Dz17lnxsE6bMo7nVbfb9fr17xO53F2XBBO7mZh+887xgqHJknQU1Y4tKiiHVgbqruB64\nA52EzJgBl14Kjz4KW24JV14JP/4x9O0b2ti6+4w2rtk8dSL5C66O+9//hp12yuuuccq/Bn0aXA5p\no2wPyHE8cAcyCXnuOfj1r33HvoED4Yor4MwzYYstQh9bnD67cZaxHsjMepvZDDN72cxeM7NLsnrk\nBQvyHlRcSrxKsd26HEqrsv1QB/nhD6oFZ9G2PjsHjz0GBx4IX/yiX3i88kp47z2f184xaBd1bJuI\ny2c37rIp5FwHHOKc2xMYARxpZp/LeK8CAndc+hOUIqiWQ9oo1Ye9qyA//EEegAsOZM3NfpFxzz3h\nmGP85+qaa/yfP/1pXgG7aGNLIS6f3bjLmCpxzjlgVfs/q9q/Nl992JRZQYEbopN/TacUQbUcTj1T\nLZSWsqokyDx03ovAy5fD//0fXHutvxLNf/wH3HabrxKpqipoTAWPLYvHjfpnN+6yynGbWSUwG9gR\nuN4590KK24wBxgCM6NGj4MAdB6UIqlEr2wtKmB/2oA/AOb22uXPhuut8kF692l8y7IYb4KijAtnp\nGMT/u/ZgBC+rd4JzrtU5NwLYFtjPzHZPcZuJzrl651x9ZXV1WQTuUuTzdOoZvNCb9be2+naqhx3m\nLxd2441w4ok+j/3UUz5FEtD29GJTm93SMJ8JyeEOZhcDa5xzV3V3m/raWjcLYOnSwkYXA+U0u0jq\na+1auQP+ABz4AfLDD+Gmm/xV1BcuhLo6+NGP/KXDamuDe94AjRw/NeVZaF1NNdPHHhLCiOLDzGY7\n5+qzuW3GVImZ1QLNzrlGM6sGDgOuTHunXr18Xm7VKujXL5txxFa55POSXJZY0s1Ira3+quk33gh/\n+Yu/ZNiXv+wXHI87rmj567CUw2J6FGST4x4M3Nae564A7nPOPZL2Hh0bbxYsgOHDCxyiREHSd7MG\nfgB+6y2ft771Vnj/fT+jPuccf8mwPPc7RFE5LKZHQTZVJa8Ae+X0qB1bbRW4E0MzqTysWOEvB3br\nrX7TjBkcfvjG2XWGLelxVC6L6WELZufkpjPubiQ1X5pUSZ9JFe39uH69T4X86U9+wXHdOth5Zxg3\nDk4+GbbdtviDj5Ao9cBJsmACd48evl9CN4E7yfnSpEryTKrg92NLCzz9NNxzDzz4oK/Brq31i4zf\n/ra/GK9ZgK8gWspl3SdMwfUqGTas28Cd9HxpEnU3kwJfSRDn2VVe78eWFvj73+HPf4ZJk2DJEr8Q\n/5WvwDe+4Uv7Yr7QKNEVSuAOK1+q9Exhus6kknLmlPX7ce1aX1c9aZJPgzQ0QJ8+cOyx8PWvw9FH\nQ3UyUkcSbcEG7mnTfHOcLqeJpcqXbhqoa/pUsWptC81tvm691EEmiQeNpJw5pX0/fvyxb+708MO+\n3/WqVdC/v98Uc+KJcOSRPniLlFBw27GGDfNv8o8/3uxHpdhx2HUH1/I1zRuCdodSddlL6m6ypFSa\ndHo/OscuS9/lJzMf4KH7LoRPfQpOPRWmT4dvfQsef9xvLLvrLhg9WkFbQhHsjBt8umSrrTr9qBQr\nz9k054fSBJmkzEy7SkqlyahhfRky4N8svu8h9nljJnWftO/4HTHCX7vx+OP9tRtD2Hae6Uwtimdy\nURxT0pQmcO+772Y/DnrlOduAHGR6puNNG/TMNKwPSmwrTZqb4fnnfb76ySdhxgz2a231KZAvH+rT\nIEce6beghyjTGkIU1xiiOKYkKk3gDkF3s8FNBZWe6fqmDfKq12F+UGJTs9vSAi+95Ndcpk2DZ5/1\nnfcqKvykYuxYH6j33z9SlSCZztSieCYXxTElUXCBe4st/HXwQgrcqWaDVZVG3549WNHUXLL0TFNz\nK72rKqiuqgxkZhr2ByWSNbvr1sGsWf5q58884/PTn3zif7bbbnDaab5d6sEHQ01NSYeWy9lRpjO1\nKK4xRHFMSRRc4AbYcUeYNy+UU/kwZoPpLpT625NGBDKWbD4oic85Ll7sUx///KcP0jNn+h2M4AP1\nySfDl74EBx0E22wT2jBzPTvKtIYQxTWGKI4pDEF/5oIN3PvvT8vE/+MXf36JT9p8SWCpT+VLGaDS\nvWmDGkumD0rico5r1sCLL/ornM+YAS+8AO++639WVeUXEc86C0aO9F8Rao+a69lRpjWEKK4xRHFM\npVaKz1ywgfuAA+hx7bUMWzSfVwbvvOHbSc15hfGmzfScYadSCrJyJbzyig/Us2f7r7lzoa3N/3zo\nUJ+jPvNM+PznYe+9oXfvkgwtnxlVrmmETGeNUVxjiOKYSq0Un7lgA/fIkQDs+/7rnQI3JDPnFcab\ntutz1vSpwjn4r3vnMGHKvG4XaCP1/9/aCm+/zYyHn+ZfT0ynbuF8dm94j22XfbDxNltv7WfTo0f7\nYL3vvqGlPfKdUeWTRsh0phbFNYYojqmUSpHnDzZwDxnCooGDqX//dW7ad1TnHyU05xXGm7bjOVMF\nFCP1lZ0L+f/PO3+3di3Mnw9vvAHz5vnZ82uv+X+vW8d+QD3GgkFDeGWr7bl/jy+z/+hD+fzoQ2HI\nkMg0asp3RqU0QnkoRZ4/2MANtH7hC+z79N86bX3P5c2a+IW1IkoVUBxsFrwLCRZpZ5sjhkBjo885\nv/OO/3r7bR+s33rLX55r00vlDR3qr15+2GFcvsB4vu8Q5m+1HWurNqY76lZXMz3keuqu8p1RKY1Q\nHkpxgA48cA89/nB49AH2a13OzB6Dcnqzhr2wFreDRneBw+Gv+VfQ63AOli3j/tueYJ8PP2TrVcvY\n5pMGBrd/ffrGBljdsLHsrsOgQb666Itf9Fd62WUX2HVX//e+fTfc7Maxj6Y8M4hUSqddITOqck8j\nlINSHKADD9wccAAA9+3eCqcdk9Ndw1xY6zhorF3fzMCmT+iz9D3ufWMOtfttw8ite0FTk9+B19Li\nv8Bv6DCDykpf4VBV5a9y0quX/+rdu/NX1+9VVRWUDuguoGy4UGtrqx/36tV+BvzJJ/5rxQo/U25s\nhGXLfH+Zjq8lSzZ+NTdzR5fHXlbdn8VbbMm7/WvZ8WvHwqc/DdtvDzvs4DdhZVknHacyMqU8JJOg\nD9DBB+5dd/Wzruee8xsfclCyYn7n/HUAZ86E11+H+fP5zNOzeHrZYrZc3UgP17bxtrcV96k7MdsY\n5Hv23PhVVeUPBj16+D87DhAVFX7szkFbG4+tXsdHy9dQ0dpCpWulZ0sLvdqaGWBt8Kt1fmNKNgYM\n8JunttzS55ZHjPCLg1tvzcUzPmau9WNJv0Es7rcl66r81Y7qaqr5cgFX8Y5TMFTKQ8IWfOCuqIAv\nfMEH7hwFOgt75x3f6e3JJ30t8OLFG3+27basqhjI68P2YUm/QTT0reHjPgNY2asva3pWc/9Pj/B9\nlztm1ZUbO8vR1uZnts3N/mv9eh8w163zi3MdfzY1bfx7x1fH7dat8/fb9Ku11X+1tGx8nra2jQHc\njAEVFaxe1czcpU2sanH06NOb3bavZau6QX5G37ev72bXp4/f2drxNWCAnxnX1Pi/p9n2vfdLi/hz\nAAE2jGBYSCpMKQ8JU/CBG3y65JFHfDvMHDZEFH0W9uab/krbDzzgqxrAn9Ifdhjst5//2n136NOH\n88ZP7TbtwB575Pf8JTCk/SsoQQbYUgbDsNdPRAphzqVaEipMfX29mzVr1sZvTJ/ug/fkyXDCCTk9\nVsELhOvW+d7JN93kx1FR4ftUHHOMv2LJTjulfA4g5UHjq/vUMe2NpTpFjonu3j8j0xyYpxeQ8hHJ\nl5nNds7VZ3XbkgTudev8KfhPfgITJhT9+VJatQomToSrr4YPPvC59u9+1/etGLJxTtp15gU+QI8b\nPRzoPLM8eNdaHpi9qNNtO0rt6hTEIyfd7/a/7p2TsorFgAXjc1tEFymGXAJ3aVIlvXr5nW555Llz\ntn49XH89XHaZr5A46CC45RafDklRsZGucmX62EM6BeKR46emrJMGnWpHUbrfbZyqWES6Kt0lPUaO\n9L0mutb5Fotz/rqAu+8O//3fUF8P//iH7798+OHdltnlUrmSqZqlVJdCk+yk+92W4vJ5IkEpXeAe\nPdpXWdxwQ/Ef+9134aijfP68stJf3HXKFN94KIPuZlipvp/NbCyKG0bKVbrf7ai96hg3ejh1NdUY\nPtU1bvRwnS1JLASS4+637S6u9uTfbL54d9hh8OqrvhSvuvOHKq9FyLY2nxa54AI/o778cjjjjJyu\nYpIuD9r1+VPdtistbkVHLr9bkbDlkuPOOOM2s+3MbJqZvW5mr5nZ2Znu09zalvpq5hdd5Oulb765\n0+3zugr6/Pm+Of5ZZ/nt1K++6v+e46Wncpl5bXpb8AtZm9KpdrRoVi1JlXHGbWaDgcHOuRfNbAtg\nNjDKOfd6d/fpNXgnN/g712z494ZZqHM+yC5c6ANvz54AOZVmTX7xfeZfehU/fuyPtFRWMf/Cy9jn\n52eF0jkurF4mceuhIiKZFbWqxDn3IfBh+98/MbO5QB3QbeDuakPe18zPuo8+Gu64A04/vfPPU9xv\n0yA1tGkZl/zld5y/YDbPbL8X5x99NivXb824OR+EErjC2D2njSMiktPipJltD+wFvJDiZ2PMbJaZ\nzWpds6LTzzotEh15pL9Sybhxfgt3159vYkB1lU+hLF/DSXOe4C9//CH7L3yVnx92Bqd+/VI+2mKr\nsqvkSFfiJiLlIevAbWb9gAeAc5xzK7v+3Dk30TlX75yrr+wzYMP3N8v7msHPf+670112GbS1dVua\nZQa1S97nrnsuYvyU63h1mx054vTruGPvYzqlRsqpkkNX0RaRrDbgmFkVPmjf6Zx7MNPtqyorMOg+\n/3rCCXDiifCrX8HzzzPq1lth9PBOedtLdqpg+a8uZ9Tr02jq0YuxR5zJPXsekTKXXU6bJuKwcUQ5\neJFgZbM4afhmpsucc+dk86CbbXlv1+kDPaA3v1/5Ante82vo3x/OO8/Xea9Y4S9p9cgjrO3Rk7v3\nOJw/7v9VPtpiq9TjA3570oisL8wQ94AS9RK3qI9PJKqK2qvEzA4AngX+BXQ0pr7QOfdYd/dJFbi7\n+0Bft0d/BbuAAAAH8klEQVQVh156ji/nA19p8qlPwWmn8djBX+PcaR90WzdtwLc/N5TLRg3P8DKT\nFVCifACKWvOmKP9fiWyq2FUlz7F5yXLOultUu/jtnhw6Zw40NPhGVL03Xm/waGD9wC03fPAGVFdh\nBo1rmnP+EIZ5NZ1ii3Iv6Cjl4FWBI0lVmiZTZPhAV1b6K6ykUKwglU9AyXe2Vs6zvCjl4JN0sBbZ\nVMl6leTSEyQKz5/Xbs4C7pcUUWreFKXZP/j3xsjxUxk29lFGjp9aNu8JKb6SBe6wP9C5Pn++9dJR\nq7MudbCI0jbzsCcLmyr3A7oUV8lSJWFfYDXX5893thalWV5YOd6o5OCjdAFipW2kmEoWuCH8D3Qu\nz59vrlY53ujI9mBdijWJKB3QJf5KGrjjJN/ZWpRmeQoWmQ/WpToridIBXeKvdBdSiJl8c7XK8cZL\nqdYkwl7jkWTRjDuNfFM7YaeEOkRp9h9VpTorCXuNR5JFgTvBFCwyK2UKIyoHdIk/Be6EU7BIT2cl\nEkcK3FLWdFYicaTAXUbivhU/qPHrrETiRoG7TMS94VLcxy9STCoHLBNR24qfq7iPX6SYFLjLRNw3\n48R9/CLFpFRJmSi07C3s/Lh2HopspBl3mShk514UOtslYeeh2rpKsWjGXSbSlb1lmk1HoVlV3Mv2\ntLgqxaTAXUZSlb1lE1Cikl+Oc9leFA5+khxKlZS5bKo11KyqcFE5+EkyKHCXuWwCShLyy2HTwU+K\nSYG7zGUTUKLUqjaudPCTYlKOu8xl22QpzvnlKIj74qpES1kE7rBrkKNMAaV0dPCTYkl84FYZVmYK\nKCLxkvgct3pciEjSJD5wqwxLRJImY+A2s5vNbImZvVqKARWbyrBEJGmymXHfChwZ8DgCozIsEUma\njIuTzrlnzGz74IcSDFVNiEjSJL6qBFQ1ISLJUrTAbWZjgDEAQ4cOLdbDSo5Usy6SfEWrKnHOTXTO\n1Tvn6mtra4v1sJKDKPTNFpHgJb4csJyoZl2kPGRTDng38E9gFzN738y+F/ywJB+qWRcpD9lUlXyz\nFAORwum6jCLlQamSAIR1bUHVrIuUh7IoByylMJtaqWZdpDxEJnDnW8YWtfK3sK8tqJp1keSLRODO\nd5YaxZatWiAUkaBFIsedbxlbFMvf1NRKRIIWicCd7yw1irNbLRCKSNAiEbjznaVGcXarC+uKSNAi\nkePO9oK1xbpf0LRAKCJBikTgzreMTeVvIlKOzDlX9Aetr693s2bNKvrjiogklZnNds7VZ3PbSOS4\nRUQkewrcIiIxo8AtIhIzCtwiIjGjwC0iEjMK3CIiMROJOu4oiFqXQRGR7ihwE80ugyIi3VGqhGh2\nGRQR6Y4CN9HsMigi0h0FbqLZZVBEpDsK3KiHtojEixYnUZdBEYkXBe526qEtInGhVImISMwocIuI\nxIwCt4hIzChwi4jETFaB28yONLN5ZvaWmY0NelAiItK9jIHbzCqB64GjgN2Ab5rZbkEPTEREUstm\nxr0f8JZz7h3n3HrgHuCEYIclIiLdyaaOuw5YuMm/3wf273ojMxsDjGn/5zoze7Xw4UXSVkBD2IMI\nkF5fvOn1xVfWW7WLtgHHOTcRmAhgZrOyvcx83CT5tYFeX9zp9cWXmc3K9rbZpEoWAdtt8u9t278n\nIiIhyCZwzwR2MrNhZtYT+AbwcLDDEhGR7mRMlTjnWszsTGAKUAnc7Jx7LcPdJhZjcBGV5NcGen1x\np9cXX1m/NnPOBTkQEREpMu2cFBGJGQVuEZGYCSRwm9mvzewVM5tjZn81syFBPE9YzGyCmb3R/hon\nmVlN2GMqJjP7mpm9ZmZtZpaI0qukt20ws5vNbEkS90+Y2XZmNs3MXm9/X54d9piKycx6m9kMM3u5\n/fVdkvE+QeS4zay/c25l+9/PAnZzzv2w6E8UEjM7HJjavnB7JYBz7mchD6tozOyzQBtwA3Cecy7r\n+tIoam/b8CZwGH4D2Uzgm86510MdWBGZ2ZeAVcDtzrndwx5PMZnZYGCwc+5FM9sCmA2MSsrvz8wM\n6OucW2VmVcBzwNnOuee7u08gM+6OoN2uL5CoFVDn3F+dcy3t/3weX9ueGM65uc65eWGPo4gS37bB\nOfcMsCzscQTBOfehc+7F9r9/AszF7+hOBOetav9nVftX2pgZWI7bzC43s4XAt4GLg3qeCDgdeDzs\nQUhaqdo2JOaDX07MbHtgL+CFcEdSXGZWaWZzgCXAk865tK8v78BtZk+Z2aspvk4AcM5d5JzbDrgT\nODPf5wlLptfXfpuLgBb8a4yVbF6fSJSYWT/gAeCcLmf1seeca3XOjcCfve9nZmnTXXn3KnHOfTnL\nm94JPAb8Mt/nCkOm12dmpwHHAoe6GBbD5/D7SwK1bYi59tzvA8CdzrkHwx5PUJxzjWY2DTgS6Hah\nOaiqkp02+ecJwBtBPE9YzOxI4KfA8c65NWGPRzJS24YYa1+8uwmY65z7TdjjKTYzq+2oTDOzavwi\netqYGVRVyQP4FoVtwHvAD51ziZnhmNlbQC/g4/ZvPZ+wqpmvAP8L1AKNwBzn3BHhjqowZnY0cA0b\n2zZcHvKQisrM7gYOwrc9/Qj4pXPuplAHVSRmdgDwLPAvfEwBuNA591h4oyoeM9sDuA3/3qwA7nPO\nXZr2PjE8yxcRKWvaOSkiEjMK3CIiMaPALSISMwrcIiIxo8AtIhIzCtwiIjGjwC0iEjP/D52M0VT9\ns3dVAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1114826d8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(ridge2_reg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.3196456113086197"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ridge3_reg = RidgeRegression(20, 100)\n",
    "ridge3_reg.fit(X_train, y_train)\n",
    "\n",
    "y3_predict = ridge3_reg.predict(X_test)\n",
    "mean_squared_error(y_test, y3_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n/w/jR7lAjtqpmgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111fdcb70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(ridge3_reg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.8408455590998372"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ridge4_reg = RidgeRegression(20, 10000000)\n",
    "ridge4_reg.fit(X_train, y_train)\n",
    "\n",
    "y4_predict = ridge4_reg.predict(X_test)\n",
    "mean_squared_error(y_test, y4_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11228b780>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(ridge4_reg)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
